文档

配置FeatureStore项目

更新时间:

FeatureStore项目会对应一个离线数据源和在线数据源,各个项目中彼此独立,而项目内可共享所有的离线、在线特征表。本文为您介绍如何配置特性平台项目。

功能原理

image
  • 阿里云特征平台FeatureStore为您提供数据源能力,可分别对接离线存储和在线存储产品,便于统一读写并管理离线、在线特征数据。

  • 您可以将离线特征表、在线特征表注册至FeatureStore的特征视图中,通过特征视图来汇总、映射离线、在线特征数据。

  • 您可以将Label表存储在离线存储MaxCompute中,通过离线数据源注册至FeatureStore中,通过注册后的FeatureStoreLabel表映射实际Label表数据。

  • 阿里云特征平台FeatureStore为您提供特征项目和特征实体功能,通过特征实体的Join Id来关联各个项目中的特征视图,将一个特征实体的所有特征进行关联,最终结合Label表产出模型特征表train set表,并将train set表存在离线存储MaxCompute中。

基本概念(点击查看详情)

  • 特征实体

    特征实体(FeatureEntity)一组特征表集合的名称,例如在推荐场景下,可以设置两个特征实体user和item,因为所有的表特征要么属于user侧,要么属于item侧。

  • 特征视图

    特征视图(FeatureView)是一组特征,包含一组特征以及这些特征的衍生特征的信息。一个特征视图是特征实体的全量特征集合的一个子集,离线特征表和在线特征表的映射。

  • Join Id

    Join Id是关联特征视图到特征实体的特征表字段,每个特征实体都会有一个Join Id , 通过Join Id可以关联多个特征视图的特征。

    说明

    每一个特征视图都有一个主键(索引键)来获取其下面的特征数据,但是特征视图的索引键可以和JoinId的名称不一致。

    以推荐场景为例,Join Id可以配置为user表和item表的主键user_id、item_id。

  • Label表

    Label表是模型训练时Label所在的表,带有模型训练目标和特征实体的JoinId。在推荐场景中一般是由行为表通过group by user_id/item_id/request_id等操作得到。

前提条件

  • 已创建离线和在线数据源,操作详情请参见配置数据源

  • 已将Label表存储于离线数据源中。

    Label表是模型训练时Label所在的表,带有模型训练目标和特征实体的JoinId。在推荐场景中一般是由行为表通过group by user_id/item_id/request_id等操作得到。

    Label表示例(点击查看详情)

    以下为创建一个示例Label表的建表语句,您可以参考以下建表命令对应的表结构了解Label表的常见字段。

    CREATE TABLE IF NOT EXISTS rec_sln_demo_fs_rec_sln_demo_sorting_label_table_v3 
    (
        request_id string
        ,user_id string
        ,page string
        ,net_type string
        ,day_h bigint COMMENT '行为发生在当天的第几小时'
        ,week_day bigint COMMENT '行为发生在当前周的第几天'
        ,day_min string
        ,event_unix_time bigint
        ,item_id string
        ,playtime double
        ,is_click BIGINT
        ,ln_playtime DOUBLE
        ,is_praise BIGINT
    )
    PARTITIONED BY 
    (
        ds string
    )
    LIFECYCLE 90
    ;

新建项目

  1. 进入特征平台页面。

    1. 登录PAI控制台,在左侧导航栏单击数据准备 > 特征平台(FeatureStore)

    2. 在右侧页面中选择工作空间后单击进入FeatureStore

  2. 单击新建项目,在弹出的页面中配置项目参数。

    其中关键参数如下。

    参数

    说明

    离线数据源

    选择已创建的离线数据源。

    在线数据源

    选择已创建的在线数据源。

    离线数据表生命周期

    通过FeatureStore自动创建、存储于离线数据源MaxCompute中的表的生命周期。

  3. 单击提交,完成项目创建。

新建特征实体

特征实体(FeatureEntity)一组特征表集合的名称,例如在推荐场景下,可以设置两个特征实体user和item,因为所有的表特征要么属于user侧,要么属于item侧。

  1. 在特征项目列表中,单击特征项目名称,进入项目详情页面。

  2. 特征实体页签中单击新建实体,在弹出的页面中配置特征实体参数。

    其中关键参数配置指导如下。

    参数

    说明

    特征实体名称

    自定义。以推荐场景为例,可配置两个特征实体,名称分别为user、item。

    Join Id

    Join Id是关联特征视图到特征实体的特征表字段,每个特征实体都会有一个Join Id , 通过Join Id可以关联多个特征视图的特征。

    说明

    每一个特征视图都有一个主键(索引键)来获取其下面的特征数据,但是特征视图的索引键可以和JoinId的名称不一致。

    以推荐场景为例,Join Id可以配置为user表和item表的主键user_id、item_id。

  3. 单击提交,完成创建。

新建特征视图

特征视图是一组特征,包含一组特征以及这些特征的衍生特征的信息。一个特征视图是特征实体的全量特征集合的一个子集,离线特征表和在线特征表的映射。

  1. 在特征项目详情页面的特性视图页签,单击新建视图

  2. 在弹出的页面中配置视图参数,完成后单击提交,完成视图创建。

    • 创建离线特征视图:将离线特征数据注册FeatureStore中。

    • 创建在线特征视图:将实时特征数据注册FeatureStore中。

    离线视图与在线视图的核心配置参数请参见下文。

新建离线特征视图

核心配置参数如下。

参数

说明

类型

选择离线时,表明此特征视图是将离线特征数据注册FeatureStore中的视图表。

写入方式

  • 使用离线表:使用一个已经存储在离线数据源中的特征表的表结构,作为离线特征视图的表结构

    选择此种方式后,您还需根据界面选择参考使用的离线表所在的数据源及表名称,并配置视图字段属性。

  • 自定义表结构:自定义本次新建离线视图的表结构。

    选择此种方式后,您需要根据界面提示手动添加视图字段并配置字段属性。

待配置的字段属性包括:

  • 主键:设置视图的主键字段。

  • 事件时间&分区字段:用于标注特征的时间周期范围,需要至少设置一个事件时间或分区字段。

同步在线特征表

选择是否需要将此视图中的特征数据自动同步到同特征项目的在线数据源中。

特征实体

选择特征视图关联的特征实体。

说明

多个特征视图(FeatureView)可以关联一个特征实体。

特征生命周期

设置特征视图的生命周期。设置完成后,后续同步写入实时数据源中的特征生命周期即为此处配置的生命周期。

新建在线特征视图

核心配置参数如下。

参数

说明

类型

选择实时时,表明此特征视图是将在线特征数据注册FeatureStore中的视图表。

写入方式

在线特征视图仅支持自定义表结构的写入方式,即自定义本次新建离线视图的表结构。

选择此种方式后,您需要根据界面提示手动添加视图字段并配置字段属性。

待配置的字段属性包括:

  • 主键:设置视图的主键字段。

  • 事件时间&分区字段:用于标注特征的时间周期范围,需要至少设置一个事件时间或分区字段。

特征实体

选择特征视图关联的特征实体。

说明

多个特征视图(FeatureView)可以关联一个特征实体。

高级配置

使用JSON方式进行高级选项的配置。当前支持配置save_original_field字段。

  • {"save_original_field":"true"} 时,表示MaxCompute的schema与 GraphCompute节点的schema保持一致。

  • {"save_original_field":"false"} 时,表示需要通过FeatureStore进行schema映射。

说明

由于GraphCompute中各个字段名称长度不能超过30个字符,当MaxCompute字段名称较长时,需要配置{"save_original_field":"false"}

新建Label表

Label表是模型训练时Label所在的表,带有模型训练目标和特征实体的JoinId。在推荐场景中一般是由行为表通过group by user_id/item_id/request_id等操作得到。

  1. 在特征项目详情页面的Label表页签,单击新建Label表

  2. 在弹出的页面中,选择Label表所在的数据源及Label表名。

  3. 配置Label表字段,完成后单击提交

    字段配置

    说明

    特征字段

    Label表中如果存在某些特征的话,可勾选对应字段为特征字段。

    FG保留字段

    当前阶段可不做配置。

    事件时间

    勾选Label表中记录行为产生的时间戳字段。

    Label字段

    勾选Label表中的Label字段。

    分区字段

    勾选Label表中的分区字段。

新建模型特征

模型特征是指定训练上线过程中所使用的特征的集合,选择好特征创建模型后,会在MaxCompute中创建一张train set表,用于离线训练。后续您也可以在EAS、PAI-rec中指定FeatureStore的模型特征,即可自动拉取用于推理的特征数据。

  1. 在特征项目详情页面的模型特征页签,单击新建模型特征

  2. 在弹出的页面中配置模型特征参数,完成后单击提交

    核心参数如下。

    参数

    说明

    选择特征

    选择当前离线视图中的特征,并配置特征别名。

    Label表名称

    选择已创建的Label表名称。

    导出表名

    提交后,后续会在MaxCompute中自动创建一张train set表,用于离线训练。

  • 本页导读 (1)
文档反馈